public class Text2 {

    public String solve (String s, String t) {

        //判断是否为空
        if(s.length() == 0 || t.length() == 0) {
            return"0";
        }

        //有0  相乘 必定为0
        if(s.equals("0") || t.equals("0")) {
            return "0";
        }

        //对字符串进行逆置

        StringBuilder ss = new StringBuilder(s).reverse();
        StringBuilder tt = new StringBuilder(t).reverse();

        //短的字符串 是外层循环   长的是内层循环
        StringBuilder shortLen = ss.length() < tt.length() ? ss : tt ;
        StringBuilder longLen = ss.length() >= tt.length() ? ss : tt;

        //要定义一个数组来保存结果
        int[] arr = new int[ss.length() + tt.length()];

        //还要定义一个变量记录一下   进位
        int count = 0;  //一开始的进位为0

        //开始循环
        for(int i = 0; i < shortLen.length(); i++) {
            int n = i;  //每次外层循环 都要  记录  方便 数组同一下标的相加
            count = 0;   //更新进位
            for(int j = 0; j < longLen.length(); j++) {
                int tmp = (shortLen.charAt(i) - '0') * (longLen.charAt(j) - '0') + arr[n] + count;
                arr[n] = tmp % 10;
                count = tmp /10;
                n++;
            }
            //一层结束还要考虑进位
            arr[n] += count;
        }

        //最后将数组里面的拼接到字符串中  再反转过来
        StringBuilder stringBuilder = new StringBuilder();
        for(int i = 0;i < arr.length; i++) {
            stringBuilder.append(arr[i]);
        }

        String str = stringBuilder.reverse().toString();
        if(str.charAt(0) == '0') {
            return str.substring(1);
        }else{
            return str;
        }
    }
    public static void main(String[] args) {

    }
}
